// pages/near/near.js

const app = getApp() //获取app内的this.userInfo数据
const db = wx.cloud.database()
const _ = db.command

Page({

  /**
   * 页面的初始数据
   */
  data: {
    longitude: '',
    latitude: '',
    markers: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    this.getLocation();

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getLocation();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  //获取地理位置
  getLocation() {
    wx.getLocation({
      type: 'gcj02',
      success: (res) => {
        const latitude = res.latitude
        const longitude = res.longitude
        this.setData({
          latitude,
          longitude
        });
        this.getNearUsers();
      }
    })
  },
  //获取附近的人
  getNearUsers() {
    db.collection('users').where({
      location: _.geoNear({
        geometry: db.Geo.Point(this.data.longitude, this.data.latitude),
        minDistance: 0,
        maxDistance: 5000, //距离在0到5000m之间
      }),
      isLocation: true
    }).field({
      longitude: true,
      latitude: true,
      userPhoto: true
    }).get().then((res) => {
      
     // console.log(res)    获取的符合范围内的人的数据
      let data = res.data;
      let result = [];
      if (data.length) {
        for (let i = 0; i < data.length; i++) {
          //如果不是微信头像，是电脑上传的头像的话
          if (data[i].userPhoto.includes('cloud://') ) {//获取临时文件
             wx.cloud.getTempFileURL({
               fileList: [ data[i].userPhoto ],
               success: res => {
                 result.push({
                   iconPath: res.fileList[0].tempFileURL,
                   id: data[i]._id,
                   latitude: data[i].latitude,
                   longitude: data[i].longitude,
                   width: 30,
                   height: 30
                 });
                 this.setData({//因为是异步的，所以要重新渲染一下
                   markers: result
                 });
               }
             })
           }
           else {
          result.push({
            iconPath: data[i].userPhoto,
            id: data[i]._id,
            latitude: data[i].latitude,
            longitude: data[i].longitude,
            width: 30,
            height: 30
          });
        }
      }
        this.setData({
          markers: result
        })
      }
    })
  },
  //点击头像跳转到详情页
  markertap(ev){
    wx.navigateTo({
      url: '/pages/detail/detail?userId=' + ev.markerId
    })
  }
})